package com.pattern.factory;

import cn.hutool.core.util.EnumUtil;
import com.pattern.utils.SpringUtils;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;
import java.util.Map;
import java.util.ServiceLoader;

/**
 * @Description: 简单工厂
 * 是简单工厂模式的核心，负责实现创建所有实例的内部逻辑。
 * 工厂类的创建产品类的方法可以被外界直接调用，创建所需的产品对象。
 * @Author: whp
 * @Date: 2021-01-27 17:31
 */
public class SimpleFactory {


    public static Product getProduct(String produceCode) throws Exception {

        Map<String, Object> map= EnumUtil.getNameFieldMap(ProductEnum.class,"productCode");
        if(!map.containsKey(produceCode)){
            throw new Exception("产品类型不存在");
        }
        Product product= SpringUtils.getBean(produceCode);
        product.lottery();

        return null;
    }
}
